import axios from 'axios'
import { message } from 'ant-design-vue'
axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'

const cfg = import.meta.env

console.log('====== cfg : ====', cfg)
// alert(cfg.VITE_RPC_URL)
// 创建axios实例 axios.create([config])
const service = axios.create({
  // axios中请求配置有baseURL选项，表示请求URL公共部分
  // baseURL: '/api',
  baseURL: cfg.VITE_RPC_URL,
  // 超时
  timeout: 30000,
})
// request拦截器
service.interceptors.request.use(
  (config) => {
    // 是否需要设置 token
    config.headers['token'] = sessionStorage.getItem('toKenValue') // 让每个请求携带自定义token 请根据实际情况自行修改
    return config
  },
  (error) => {
    console.log(error)
    Promise.reject(error)
  }
)

// 配置响应拦截
service.interceptors.response.use(
  (res) => {
    console.log('axios result:', res)
    // 未设置状态码则默认成功状态
    const code = res.data.code || '200'

    // 获取错误信息
    // const msg = errorCode[code] || res.data.message || errorCode['default']
    if (code === '403') {
      message.error('登录状态已过期，请重新登录', 0, () => {})
    } else if (code === '500') {
      message.error('服务器错误', 0, () => {})
      // return Promise.reject(new Error(msg));
    } else if (code !== '200') {
      message.error('位置错误', 0, () => {})
      // return Promise.reject("error");
    } else {
      return res.data
    }
  },
  (error) => {
    console.log('axios err', error)
    let msg = error.response.statusText
    message.error(msg, 0, () => {})
  }
)

// 响应拦截器
axios.interceptors.response.use(
  (res) => {
    // 未设置状态码则默认成功状态
    const code = res.data.code || 200

    // 获取错误信息
    // const msg = errorCode[code] || res.data.message || errorCode['default']
    if (code === '403') {
      message.error('登录状态已过期，请重新登录', 0, () => {})
    } else if (code === '500') {
      message.error('服务器错误', 0, () => {})
      // return Promise.reject(new Error(msg));
    } else if (code !== '200') {
      message.error('位置错误', 0, () => {})
      // return Promise.reject("error");
    } else {
      return res.data
    }
  },
  (error) => {
    console.log('axios err', error)
    let msg = error.response.statusText
    message.error(msg, 0, () => {})
  }
)
export default service
